home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 3 / QRZ Ham Radio Callsign Database - Volume 3.iso / world / mac / contest / dxmap1_1.hqx / DX Map 1.1 / stack_-1.xml < prev    next >
Extensible Markup Language  |  1991-10-11  |  14KB  |  23 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
  3. <stack>
  4.     <name>in.1</name>
  5.     <id>-1</id>
  6.     <cardCount>4</cardCount>
  7.     <cardID>5555</cardID>
  8.     <listID>3742</listID>
  9.     <cantModify><false /></cantModify>
  10.     <cantDelete><false /></cantDelete>
  11.     <cantAbort><false /></cantAbort>
  12.     <cardSize>
  13.         <width>512</width>
  14.         <height>200</height>
  15.     </cardSize>
  16.     <script>--ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇö stack "DX Map 1.1" 10/6/91 10:26 PM---- HANDLERS: openstack(globals:itime,lastact,updateInterval,-- delayInterval,GrayLineFlag,mylat,mylon,tz),closestack-- (globals:GrayLineflag),fixfonts,DoGrayLineTask(globals:nextTask,-- itime,lastupd,tz,thepoints),DoGrayLineTask123(globals:nextTask,-- itime,lastupd,tz,thepoints),DoGrayLineTask23(globals:nextTask,-- itime,lastupd,tz,thepoints),DoGrayLineNow(globals:nextTask,-- lastact),trackit,domenu(globals:needfix,lastact),resumestack-- (globals:lastact),opencard(globals:lastact),DoSunPos-- (globals:tz),UpdateLocation(globals:mylat,mylon,tz),-- PutMyPos(globals:lastact,tz,mylat,mylon),UpdateTime(globals:tz)-- ---- FUNCTIONS: semitocom,semitocomns,daylightsavings,timecvt(globals:t24)-- ----ΓÇöΓÇöΓÇöΓÇöΓÇöΓÇöΓÇôon openstackglobal itime,lastact, updateInterval, delayInterval, GrayLineFlag,┬¼mylat,mylon,tz-- The globals below can be changed to configure the general-- actions of this stack.---- timing:-- Updating and plotting the grayline takes about 25 seconds on-- a Mac Plus, about 5 seconds on a Mac IIcx, and about 2 seconds-- on a IIfx. If you have a Plus (like I do) you don't want to be-- locked out for a period of 25 seconds. So there are 3 timing-- devices to minimize the interruption. The global, delayInterval,-- is a grace period (in ticks) that you have whenever you do anything,-- like press one of the buttons. This prevents an interruption when-- you are busy doing something in the stack. The global,-- updateInterval, is the minimum time (in ticks) for the grayline-- to update. The time chosen below is based on the fact that the-- grayline moves 1 pixel to the left about every 4 minutes. The-- calculation of the grayline can be broken up into 3 operations,-- and the stack tries to do these so that they are equally spaced-- during the updateInterval.put 14400 into updateInterval  -- update grayline every 4 minutesput 1200 into delayInterval  -- 20 second wait after any actiongo first cdUpdateLocationif the highlight of cd btn "sun" is "true" thenput "false" into Graylineflagelseput "true" into GrayLineflagend ifupdatetimeDoSunPosif (( highlight of btn "Draw grayline on open" of cd "config") is "true") thendograylinenowend ifput the ticks into itimeput the ticks into lastactput 1 into nextTaskpass openstackend openstackon closestackglobal GrayLineflagif GrayLineflag is "true" thenset the lockmessages to trueset cursor to "watch"lock screenset the lockmessages to trueset the lockRecent to truego cd "c2"choose select tooldomenu "Select All"domenu "Copy Picture"go cd "c1"domenu "Paste Picture"choose browse toolunlock screenset the lockmessages to falseset the lockRecent to falseend ifpass closestackend closestackon fixfontsset textfont of cd fld "country list" to "MonaHam"set textfont of cd fld "f1" to "MonaHam"set textfont of cd fld "utctime" to "MonaHam"set textfont of cd fld "localtime" to "MonaHam"set textfont of cd fld "otime" to "MonaHam"set textfont of cd fld "list" to "MonaHam"set textfont of cd fld "find call" to "MonaHam"end fixfontson DoGrayLineTaskglobal nextTask,itime, lastupd,tz, thepointsput the ticks into tttput the ticks into itimeif nextTask is 1 then  -- calculate the pointsset cursor to "watch"if daylightsavings() is "false" then -- dlsget SunPos(tz)elseget SunPos(tz+1)end ifput GrayPos(item 1 of it, item 2 of it) into thepointsend ifif nextTask is 2 then  -- draw the lineset cursor to "watch"lock screenput thepoints into fffgo cd "c3"choose line toolput number of items in fff into n2repeat with i=1 to (n2/2 - 1)drag from ((item (2*i-1) of fff) & "," & (item (2*i) of fff))┬¼to ((item (2*i+1) of fff) & "," & (item (2*i+2) of fff))end repeatchoose browse toolgo cd "c1"unlock screenend ifif nextTask is 3 then -- get fresh map and paste night regionset cursor to "watch"lock screengo cd "c2"choose select tooldomenu "Select All"domenu "Copy Picture"go cd "c1"domenu "Paste Picture"go cd "c3"drag from 152,0 to 512,200 with optionkeydomenu "Cut Picture"go cd "c1"domenu "Paste Picture"domenu "pickup"domenu "invert"choose browse toolput the ticks into lastupdunlock screenend ifif nextTask <> 3 thenadd 1 to nextTaskelseput 1 into nextTaskend ifend DoGrayLineTaskon DoGrayLineTask123global nextTask,itime, lastupd,tz, thepointsput the ticks into xxxxset the lockMessages to trueset the lockRecent to trueset cursor to "watch"lock screenif daylightsavings() is "false" then -- dlsget SunPos(tz)elseget SunPos(tz+1)end ifput GrayPos(item 1 of it, item 2 of it) into thepointsput thepoints into fffgo cd "c3"choose line toolput number of items in fff into n2repeat with i=1 to (n2/2 - 1)drag from ((item (2*i-1) of fff) & "," & (item (2*i) of fff))┬¼to ((item (2*i+1) of fff) & "," & (item (2*i+2) of fff))end repeatgo cd "c2"choose select tooldomenu "Select All"domenu "Copy Picture"go cd "c1"domenu "Paste Picture"go cd "c3"drag from 152,0 to 512,200 with optionkeydomenu "Cut Picture"go cd "c1"domenu "Paste Picture"domenu "pickup"domenu "invert"choose browse toolput the ticks into lastupdput the ticks into itimeput 1 into nextTaskunlock screenset the lockMessages to falseset the lockRecent to false--put (the ticks - xxxx) / 60end DoGrayLineTask123on DoGrayLineTask23global nextTask,itime, lastupd,tz,thepointsset cursor to "watch"lock screenput thepoints into fffgo cd "c3"choose line toolput number of items in fff into n2repeat with i=1 to (n2/2 - 1)drag from ((item (2*i-1) of fff) & "," & (item (2*i) of fff))┬¼to ((item (2*i+1) of fff) & "," & (item (2*i+2) of fff))end repeatgo cd "c2"choose select tooldomenu "Select All"domenu "Copy Picture"go cd "c1"domenu "Paste Picture"go cd "c3"drag from 152,0 to 512,200 with optionkeydomenu "Cut Picture"go cd "c1"domenu "Paste Picture"domenu "pickup"domenu "invert"choose browse toolput the ticks into lastupdput the ticks into itimeput 1 into nextTaskunlock screenend DoGrayLineTask23on DoGrayLineNowglobal nextTask, lastactput the ticks into lastactif nexttask = 1 thenDoGrayLineTask123else if nexttask = 2 thenDoGrayLineTask23elseDoGrayLineTaskend ifend DoGrayLineNowon trackitif the mouseloc is within the rect of cd btn "mapbtn" then ┬¼set the loc of the target to the mouselocput round(90 - (0.89109 * (item 2 of the loc of the target))) into latput round((item 1 of the loc of the target - 153) * 1.0056 - 180) into lonput abs(lat) into stuffif lat > 0 thenput "┬░ North" & return after stuffelseput "┬░ South" & return after stuffend ifput abs(lon) after stuffif lon > 0 thenput "┬░ East" after stuffelseput "┬░ West" after stuffend ifput stuff into cd fld "f1"end trackiton domenu thingglobal needfix, lastactif thing is "Compact Stack" thenput "yes" into needfixend ifput the ticks into lastactpass domenuend domenuon resumestackglobal lastactput the ticks into lastactpass resumestackend resumestackon opencardglobal lastactput the ticks into lastactpass opencardend opencardfunction semitocom craigrepeat until (offset(";", craig) = 0)put offset(";", craig) into scoput "," into char sco of craigput " " after char sco of craigend repeatreturn craigend semitocomfunction semitocomns craigrepeat until (offset(";", craig) = 0)put offset(";", craig) into scoput "," into char sco of craigend repeatreturn craigend semitocomnson DoSunPosglobal tzif daylightsavings() is "false" then -- dlsput SunPos(tz) into tspelseput SunPos(tz+1) into tspend ifput round((item 2 of tsp + 180) * (511 - 153) / 360 + 153)  & "," into posput round((90- item 1 of tsp) * (202-0) / 180 + 0) after posset the location of btn "sun" to posend DoSunPosfunction daylightsavingsif the highlight of btn "auto daylight savings" of cd "config" ┬¼is "false" thenif the highlight of btn "summer time" of cd "config" is "true" thenput "true" into daylightsavingselseput "false" into daylightsavingsend ifelseput the time into mytimeconvert mytime to dateitemsif (item 2 of mytime < 4) or (item 2 of mytime >10) thenput "false" into daylightsavingselse if (item 2 of mytime > 4) and (item 2 of mytime <10) thenput "true" into daylightsavingselse if (item 2 of mytime is 4) then -- Aprilif item 3 of tt > 7 thenput "false" into daylightsavingselse--find the witching hourput mytime into cutoverconvert cutover to dateitemsrepeat with i = 1 to 7put i into item 3 of cutoverconvert cutover to long dateconvert cutover to dateitemsif item 7 of cutover is 1 then exit repeatend repeatput 2 into item 4 of cutover -- 2 am is the timeconvert cutover to secondsconvert mytime to secondsif mytime >= cutover thenput "true" into daylightsavingselseput "false" into daylightsavingsend ifend ifelse -- Octoberif item 3 of mytime < 24 thenput "true" into daylightsavingselse--find the witching hourput mytime into cutoverconvert cutover to dateitemsrepeat with i = 24 to 31put i into item 3 of cutoverconvert cutover to long dateconvert cutover to dateitemsif item 7 of cutover is 1 then exit repeatend repeatput 2 into item 4 of cutover -- 2 am is the timeconvert cutover to secondsconvert mytime to secondsif mytime >= cutover thenput "false" into daylightsavingselseput "true" into daylightsavingsend ifend ifend ifend ifreturn daylightsavingsend daylightsavingson UpdateLocationglobal mylat,mylon,tzif the highlight of btn "Location" of cd "config" is true thenGetLocaleput the result into locresif word 1 of locres is "Error" thenBeepanswer "Error getting your location from parameter RAM. Go to the next card and set it manually." with "OK"elseput item 1 of locres into mylatput item 2 of locres into mylonend ifelseput cd fld "lat" of cd "config" into tlatif (tlat is a number) and (tlat>=0) and (tlat<=90) thenif the highlight of btn "N" of cd "config" is true thenput tlat into mylatelseput -tlat into mylatend ifelseBeepanswer "Invalid latitude" with "OK"go cd "config"exit updatelocationend ifput cd fld "lon" of cd "config" into tlonif (tlon is a number) and (tlon>=0) and (tlon<=180) thenif the highlight of btn "E" of cd "config" is true thenput tlon into mylonelseput -tlon into mylonend ifelseBeepanswer "Invalid latitude" with "OK"go cd "config"exit updatelocationend ifend ifif the highlight of btn "Time Zone" of cd "config" is true thenGetLocaleput the result into locresif word 1 of locres is "Error" thenBeepanswer "Error getting your time zone from parameter RAM" with "OK"elseput item 3 of locres into tzend ifelseput cd fld "tz" of cd "config" into ttzif (ttz is a number) and (ttz>=-24) and (ttz<=24) thenput ttz into tzelseBeepanswer "Invalid time difference" with "OK"go cd "config"exit updatelocationend ifend ifPutMyPosDoSunPosend UpdateLocationon PutMyPosglobal lastact,tz,mylat,mylonput round((mylon + 180) * (511 - 153) / 360 + 153)  & "," into posput round((90-mylat) * (202-0) / 180 + 0) after posset the location of btn "here" to posif (item 1 of pos) > 483 then put 483 into item 1 of posif (item 1 of pos) < 181 then put 181 into item 1 of posput 5 into item 2 of posset the loc of cd fld "localtime" to posif tz is not empty thenshow cd fld "utctime"if cd fld "otz" is not empty thenshow cd fld "otime"end ifupdatetimeelsehide cd fld "otime"hide cd fld "utctime"end ifput the ticks into lastactend PutMyPosOn UpdateTimeglobal tzput timecvt(the time) into cd fld "Localtime"if tz is not empty thenput the time into ttempconvert ttemp to dateItemsconvert ttemp to secondsadd -tz * 3600 to ttempif daylightsavings() is "true" then subtract 3600 from ttemp -- dlsconvert ttemp to dateItemsput item 4 of ttemp into hrput item 5 of ttemp into mnif length of hr = 1 then put "0" & hr into hrif length of mn = 1 then put "0" & mn into mnput hr & mn && "UTC" into cd field UTCtimeif cd fld "otz" is not empty thenput the time into ttempconvert ttemp to secondsadd -((cd fld "otz") + tz) * 3600 to ttemp -- assumes summer timeif daylightsavings() is "true" then subtract 3600 from ttemp -- dlsconvert ttemp to short timeput timecvt(ttemp) into cd fld "otime"end ifend ifend UpdateTimefunction timecvt mytimeglobal t24if t24 is "true" thenput offset(":",mytime) into colonposput char 1 to (colonpos-1) of mytime into hrput char (colonpos+1) to (colonpos+2) of mytime into minput empty into prefixif hr is "12" thenif word 2 of mytime is "AM" thenput "0" into hrelseput 12 into hrend ifelseif word 2 of mytime is "PM" then add 12 to hrend ifif hr < 10 then put "0" after prefixreturn prefix & hr & minelsereturn mytimeend ifend timecvt</script>
  17.     <background id="2672" file="background_2672.xml" name="" />
  18.     <card id="5555" file="card_5555.xml" marked="false" name="c1" owner="2672" />
  19.     <card id="3866" file="card_3866.xml" marked="false" name="config" owner="2672" />
  20.     <card id="2241" file="card_2241.xml" marked="false" name="c2" owner="2672" />
  21.     <card id="3023" file="card_3023.xml" marked="false" name="c3" owner="2672" />
  22. </stack>
  23.